
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 * Louveau Romain
 */

package gestionnaires;

import modeles.Disque;
import modeles.Realisateur;
import java.util.ArrayList;
import java.util.Collection;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;



@Stateless
public class GestionnaireRealisateurs {
     @PersistenceContext
    private EntityManager em;

    public void creerRealisateursDeTest() {
 
         System.out.println("debut crea real");
        //Star Wars
         creeRealisateur("Lucas", "Georges", "George Walton Lucas est gros.");
       
        //Alien 1
         creeRealisateur("Scott","Ridley","Né  le  30 novembre 1937  à South Shields, Durham (Grande-Bretagne)");
        //Alien 2
         creeRealisateur("Cameron","James","dzee zaeazdsd aze asdaz d azdd fz az azd azd az sdaz d sdaz asfazd a");
         //Alien 3
         creeRealisateur("Fincher","David","24sd zsd azd d32c4ze ads12 ez7f ds1234e6 3f8ds2c1e6357c sd3f2 1e685f7 d");
        //Matrix
         creeRealisateur("Wachowski","Lana","français");
         
        //else
        creeRealisateur("Yann","Samuell","français");
        creeRealisateur("Louis","Leterrier","Né d'un père réalisateur et d'une mère directrice artistique, Louis Leterrier est d'abord batteur d'un groupe de musique avant de se lancer dans la direction de courts métrages");
        creeRealisateur("Olivier","Megaton ","Né le 6 août 1965 soit vingt ans jour pour jour après le bombardement d'Hiroshima");
         System.out.println("fin crea real");    
        

    }

    public Realisateur creeRealisateur(String nom, String prenom, String description) {

        Realisateur r = new Realisateur(nom, prenom, description);
    //    Collection<Film> films = new ArrayList();
/*
        Film f = new Film();
        f.setTitre("titanic");
        f.setPrix(1.9);
        f.setQuantite(150);
        f.setResume("rien");

         Film f1 = new Film();
        f1.setTitre("titanic2");
        f1.setPrix(1.99);
        f1.setQuantite(50);
        f1.setResume("walou");

        films.add(f);
        films.add(f1);
        r.setFilms(films);
 */
 
        em.persist(r);
        return r;
    }

    public Collection<Realisateur> getAllRealisateurs() {
        // Exécution d'une requête équivalente à un select *
       Query q = em.createQuery("select r from Realisateur r");
        return q.getResultList();
    }

      public Realisateur getRealisateurById(int idRealisateur) {
        // Exécution d'une requête équivalente à un select *
       Query q = em.createQuery("select r from Realisateur r where r.id = :id");
       q.setParameter("id", idRealisateur);
        return (Realisateur) q.getSingleResult();
    }


 public  Realisateur getRealisateurByNom(String nom){

         Realisateur user = null;
         try{

          Query q = em.createQuery("select r from Realisateur r where r.nom = :nom");
          q.setParameter("nom", nom);
          user = (Realisateur) q.getSingleResult();

         }catch (NoResultException e) {
            System.out.println(nom + "Ce Realisateur n'existe pas.");
        }
        return user;


    }

    // Add business logic below. (Right-click in editor and choose
    // "Insert Code > Add Business Method")

}
